GameDataStorage
async get(key: string): ResultValue
获取存储库的内容,注意加 await!
注意:在存储库没有对应的数据时会返回 undefined!
基础示例:
// 获取存储库
var dataStorage = storage.getDataStorage("storage");
!async function(){
// 设置内容(详见下方 set 方法)
await dataStorage.set("test", "test");
// 获取内容
var result = await dataStorage.get("test");
// 如果内容不存在,返回值为 undefined!
if(result){
// 如果存在,result.value 为内容(实际内容可能为字符串、数字、布尔值、数组、对象)
console.log("存储库 storage 的 test 键的内容为:" + result.value);
}else{
console.log("存储库 storage 的 test 键无内容!");
}
// 删除内容(详见下方 remove 方法)
await dataStorage.remove("test");
result = await dataStorage.get("test");
// 如果内容不存在,返回值为 undefined!
if(result){
// 如果存在,result.value 为内容(实际内容可能为字符串、数字、布尔值、数组、对象)
console.log("存储库 storage 的 test 键的内容为:" + result.value);
}else{
console.log("存储库 storage 的 test 键无内容!");
}
}();
async getVersion(key: string, version: string): ResultValue
获取存储库的内容的备份,注意加 await!
注意:在存储库没有对应的数据时会返回 undefined!
基础示例 1:
// 获取存储库
var dataStorage = storage.getDataStorage("storage");
!async function(){
// 设置初始值
await dataStorage.set("test", "test1");
// 获取备份的数据
var tmp = await dataStorage.get("test");
// 如果键不存在,返回值为 undefined!
if(!tmp) return;
var version = tmp.version;
// 更新内容
await dataStorage.set("test", "test2");
// 获取备份(返回值同 get 方法)
var result = await dataStorage.getVersion("test", version);
// 如果备份不存在,返回指为 undefined!
if(result){
// 如果存在,result.value 为内容(实际内容可能为字符串、数字、布尔值、数组、对象)
console.log("存储库 storage 的 test 键的设置前备份内容为:" + result.value);
}else{
console.log("存储库 storage 的 test 键无设置前备份内容!");
}
// 获取备份的数据
tmp = await dataStorage.get("test");
// 如果键不存在,返回值为 undefined!
if(!tmp) return;
version = tmp.version;
// 删除内容
await dataStorage.remove("test");
// 获取备份(返回值同 get 方法)
result = await dataStorage.getVersion("test", version);
// 如果备份不存在,返回指为 undefined!
if(result){
// 如果存在,result.value 为内容(实际内容可能为字符串、数字、布尔值、数组、对象)
console.log("存储库 storage 的 test 键的删除前备份内容为:" + result.value);
}else{
console.log("存储库 storage 的 test 键无删除前备份内容!");
}
// 当备份不存在时,(注:备份索引为无意义内容!)返回 undefine
// 获取备份(返回值同 get 方法)
result = await dataStorage.getVersion("test", "test");
if(result){
// 如果存在,result.value 为内容(实际内容可能为字符串、数字、布尔值、数组、对象)
console.log("存储库 storage 的 test 键的删除前备份内容为:" + result.value);
}else{
console.log("存储库 storage 的 test 键无删除前备份内容!");
}
}();
key: string
返回存储库名称
示例:
// 获取存储库
var dataStorage = storage.getDataStorage("storage");
var key = dataStorage.key;
console.log(key === "storage");
async list(options: ListPageOptions): QueryList
分页列举数据库的内容,注意加 await!
示例 - 输出所有内容:
var dataStorage = storage.getDataStorage("storage");
!async function(){
// 设置初始值
await dataStorage.set("test1", "test1");
await dataStorage.set("test2", "test2");
await dataStorage.set("test3", "test3");
// 列举内容
var queryList = await dataStorage.list({
// 开始的索引/页数(具体未知),一般填 0 即可
cursor: 0,
// 分页大小,默认 100,可省略不填
pageSize: 100
});
// 输出内容
while(true){
for(let value of queryList.getCurrentPage()){
// value.value 为内容(实际内容可能为字符串、数字、布尔值、数组、对象)
console.log(value.key + ": " + value.value);
}
// 如果是最后一页,退出循环
if(queryList.isLastPage) break;
// 查找下一页
await queryList.nextPage();
}
}();
示例 - 查找内容:
var dataStorage = storage.getDataStorage("storage");
!async function(){
// 设置初始值
await dataStorage.set("test1", "test1");
await dataStorage.set("test2", "test2");
await dataStorage.set("test3", "test3");
// 列举内容
var queryList = await dataStorage.list({
// 开始的索引/页数(具体未知),一般填 0 即可
cursor: 0,
// 分页大小,默认 100,可省略不填
pageSize: 100
});
// 查找内容
var result;
while(true){
for(let value of queryList.getCurrentPage()){
// 判断内容是否为 test2(内容为 value.value)
// value.value 为内容(实际内容可能为字符串、数字、布尔值、数组、对象)
if(value.value === "test2") {
result = value;
break;
}
}
// 如果是最后一页,退出循环
if(queryList.isLastPage) break;
// 查找下一页
await queryList.nextPage();
}
if(result){
// 如果查找到内容,则输出内容
console.log("内容为 test2 的 key: " + result.key);
}else{
console.log("未找到内容为 test2 的键!")
}
}();
async remove(key: string): ResultValue
删除内容,注意加 await!
返回删除前的内容
基础示例:
// 获取存储库
var dataStorage = storage.getDataStorage("storage");
!async function(){
// 设置初始值
await dataStorage.set("test", "test");
// 删除内容
var result = await dataStorage.remove("test");
// 如果内容不存在,返回值为 undefined!
if(result){
// 如果存在,result.value 为内容(实际内容可能为字符串、数字、布尔值、数组、对象)
console.log("存储库 storage 的 test 键删除前的内容为:" + result.value);
}else{
console.log("存储库 storage 的 test 键删除前无内容!");
}
// 获取删除后的内容
result = await dataStorage.get("test");
// 如果内容不存在,返回值为 undefined!
if(result){
// 如果存在,result.value 为内容(实际内容可能为字符串、数字、布尔值、数组、对象)
console.log("存储库 storage 的 test 键删除后的内容为:" + result.value);
}else{
console.log("存储库 storage 的 test 键删除后的无内容!");
}
// 再次删除内容
var result = await dataStorage.remove("test");
// 如果内容不存在,返回值为 undefined!
if(result){
// 如果存在,result.value 为内容(实际内容可能为字符串、数字、布尔值、数组、对象)
console.log("存储库 storage 的 test 键再次删除前的内容为:" + result.value);
}else{
console.log("存储库 storage 的 test 键再次删除前无内容!");
}
}();
asnyc set(key: string, value: JSONValue): void
设置内容,注意加 await!
基础示例:
// 获取存储库
var dataStorage = storage.getDataStorage("storage");
!async function(){
// 设置初始值
await dataStorage.set("test", "test1");
// 获取设置前的内容
var result = await dataStorage.get("test");
// 如果内容不存在,返回值为 undefined!
if(result){
// 如果存在,result.value 为内容(实际内容可能为字符串、数字、布尔值、数组、对象)
console.log("存储库 storage 的 test 键设置前的内容为:" + result.value);
}else{
console.log("存储库 storage 的 test 键设置前的无内容!");
}
// 设置内容
await dataStorage.set("test", "test2");
// 获取设置后的内容
result = await dataStorage.get("test");
// 如果内容不存在,返回值为 undefined!
if(result){
// 如果存在,result.value 为内容(实际内容可能为字符串、数字、布尔值、数组、对象)
console.log("存储库 storage 的 test 键设置后的内容为:" + result.value);
}else{
console.log("存储库 storage 的 test 键设置后的无内容!");
}
}();
async update(key: string, handler: (prevValue: ResultValue) => JSONValue): void
更新内容,注意加 await!
基础示例:
// 获取存储库
var dataStorage = storage.getDataStorage("storage");
!async function () {
// 设置初始值
await dataStorage.set("test", 0);
// 获取设置前的内容
var result = await dataStorage.get("test");
// 如果内容不存在,返回值为 undefined!
if (result) {
// 如果存在,result.value 为内容(实际内容可能为字符串、数字、布尔值、数组、对象)
console.log("存储库 storage 的 test 键设置前的内容为:" + result.value);
} else {
console.log("存储库 storage 的 test 键设置前的无内容!");
}
// 更新内容
await dataStorage.update("test", (prevValue) => {
// 如果没有原来的内容,则初始化内容(此处初始化为 0)
// 注:原来没有内容时,prevValue 为 undefined;!prevValue 在这里永远不会触发,但是在实际情况下可能会触发
if (!prevValue) {
console.log("存储库 storage 的 test 键更新前的无内容!");
return 0;
}
console.log("存储库 storage 的 test 键更新前的内容为:" + prevValue.value);
// 如果不更新内容,请返回 prevValue.value(实际上是更新成相同值)
// 注:prevValue.value === 1 在这里永远不会触发
if (prevValue.value === 1) return prevValue.value;
// 返回更新的内容(此处更新为原来的内容加 1)
return prevValue.value + 1;
});
// 获取设置后的内容
result = await dataStorage.get("test");
// 如果内容不存在,返回值为 undefined!
if (result) {
// 如果存在,result.value 为内容(实际内容可能为字符串、数字、布尔值、数组、对象)
console.log("存储库 storage 的 test 键设置后的内容为:" + result.value);
} else {
console.log("存储库 storage 的 test 键设置后的无内容!");
}
}();